package com.cyber.plus.util;

import com.cyber.plus.CyberMod;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Block;
import net.minecraft.block.Material;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemGroup;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier;

/**
 * 方块工具
 *
 * @version 1.0
 * @author: 贺坤
 * @createTime: 2023年06月27日 21:00
 */
public class BlocksUtil {

	/**
	 * 注册方块
	 * @param name
	 * @param block
	 * @param itemGroups
	 * @return
	 */
	public static Block registryBlock(String name, Block block, ItemGroup... itemGroups) {
		// 将方块注册到 物品中
		BlockItem blockItem = new BlockItem(block, new FabricItemSettings());
		ItemUtil.registryItem(name, blockItem, itemGroups);
		// 注册方块
		return Registry.register(Registries.BLOCK, new Identifier(CyberMod.MOD_ID, name), block);
	}

	/**
	 * 注册一个方块
	 * @param name
	 * @param itemGroups
	 * @return
	 */
	public static Block registryBlock(String name,ItemGroup... itemGroups) {

		// 方块的定义
		FabricBlockSettings settings = FabricBlockSettings
				// 天然金属砌块的材料，如大锅、钟、铁门和铁活板门。它还包括不明显的矿块，如酿酒台和压缩矿块，包括钻石、红石和青金石矿块。
				.of(Material.METAL)
				// 定义挖掘 和抗击爆炸强度
				.strength(4.0F)
				// 需要工具挖掘
				.requiresTool()
				;
		Block block = new Block(settings);
		return registryBlock(name,block,itemGroups);
	}
}
